package com.tbit.uqbike.client.dao.core;

import com.tbit.uqbike.client.pojo.Recharge;

import java.util.List;
import java.util.Map;

/**
 * 订单dao
 *
 * @author Leon
 * 2017年2月24日 下午4:02:36
 */
public interface RechargeDao {
    /**
     * 添加
     *
     * @param recharge
     */
    void insert(Recharge recharge);

    /**
     * 通过用户id以及状态获取
     *
     * @param map
     * @return
     */
    List<Recharge> getByIdAndState(Map<String, Object> map);


    /**
     * 根据订单编号查询
     *
     * @param orderNO
     * @return
     */
    Recharge getByOrderNO(String orderNO);

    /**
     * 更新支付状态
     *
     * @param recharge
     */
    void update(Recharge recharge);

    /**
     * 更新支付分订单
     *
     * @param recharge
     */
    void editWizffPay(Recharge recharge);

    /**
     * 查询未支付微信支付分订单
     *
     * @param map
     * @return
     */
    Recharge getByWxzzfNotPay(Map<String, Object> map);

    /**
     * 按时间倒序查询用户充值记录
     *
     * @param userId
     * @return
     */
    List<Recharge> getByUserId(Integer userId);

    /**
     * 根据用户id查询用户充值订单
     *
     * @param map
     * @return
     */
    List<Recharge> getByUserIdAndType(Map<String, Object> map);

    /**
     * 根据用户id查询用户最近一条充值订单
     *
     * @param userId
     * @return
     */
    Recharge getUserNotPayOrder(Integer userId);

    void editType(Recharge recharge);

    /**
     * 获取信用免押支付数据
     *
     * @param map
     * @return
     */
    Recharge getExemptByType(Map<String, Object> map);
}